<HTML>
<HEAD>
<TITLE>Metoda TextRange.findText()</TITLE>
<SCRIPT LANGUAGE="JavaScript">
// zmienna globalna zawierajca zakres tekstowy 
// uywana przy odtwarzaniu modyfikacji
var rng

// zwraca warto trzeciego argumentu wywoania metody findText() 
function getArgs(form) {
    var isCaseSensitive = (form.caseSensitive.checked) ? 4 : 0
    var isWholeWord = (form.wholeWord.checked) ? 2 : 0
    return isCaseSensitive ^ isWholeWord
}

// wyszukaj i zastp z potwierdzeniem
function sAndR(form) {
    var srchString = form.searchString.value
    var replString = form.replaceString.value
    if (srchString) {
        var args = getArgs(form)
        rng = document.body.createTextRange()
        rng.moveToElementText(rights)
        clearUndoBuffer()
        while (rng.findText(srchString, 10000, args)) {
            rng.select()
            rng.scrollIntoView()
            if (confirm("Zastpi?")) {
                rng.text = replString
                pushUndoNew(rng, srchString, replString)
            }
            rng.collapse(false)        
        }    
    }
}

// wyszukaj i zastp bez potwierdzenia ale z licznikiem
function sAndRCount(form) {
    var srchString = form.searchString.value
    var replString = form.replaceString.value
    var i
    if (srchString) {
        var args = getArgs(form)
        rng = document.body.createTextRange()
        rng.moveToElementText(rights)
        for (i = 0; rng.findText(srchString, 10000, args); i++) {
            rng.text = replString
            pushUndoNew(rng, srchString, replString)
            rng.collapse(false)        
        }
        if (i > 1) {
            clearUndoBuffer()
        }
    }
    document.all.counter.innerText = i
}

// Pocztek kodu obsugujcego bufor umoliwiajcy odtwarzanie modyfikacji
// zmienne globalne bufora
var newRanges = new Array()
var origSearchString
// zapisz oryginalny wyszukiwany acuch znakw i zakadki dla kadego 
// zastpionego zakresu tekstowego 
function pushUndoNew(rng, srchString, replString) {
    origSearchString = srchString
    rng.moveStart("character", -replString.length)
    newRanges[newRanges.length] = rng.getBookmark()
}

// czycimy tablic i zmienn globaln poszukiwanego acucha znakw
function clearUndoBuffer() {
    document.all.counter.innerText = "0"
    origSearchString = ""
    newRanges.length = 0
}

// odtwarzamy zmiany
function undoReplace() {
    if (newRanges.length && origSearchString) {
        for (var i = 0; i < newRanges.length; i++) {
            rng.moveToBookmark(newRanges[i])
            rng.text = origSearchString
        }
        document.all.counter.innerText = i
        clearUndoBuffer()
    }
}
</SCRIPT>
</HEAD>
<BODY>
<H1>Metoda TextRange.findText()</H1>
<HR>
<FORM>
<P>Podaj acuch znakw ktry zostanie odszukany w poniszym fragmencie tekstu:<br>
<INPUT TYPE="text" NAME="searchString" SIZE=20 VALUE="prawo"> &nbsp;
<INPUT TYPE="checkbox" NAME="caseSensitive">Uwzgldnia wielko liter &nbsp;
<INPUT TYPE="checkbox" NAME="wholeWord">Tylko cae sowa</P>
<P>Podaj acuch na ktry zostan zamienione odszukane fragmenty strony:<br>
<INPUT TYPE="text" NAME="replaceString" SIZE=20 VALUE="ustaw"></P>
<P><INPUT TYPE="button" VALUE="Wyszukaj i zastp (z potwierdzeniem)" 
onClick="sAndR(this.form)"></P>
<P><INPUT TYPE="button" VALUE="Wyszukaj, zastp i zlicz (bez potwierdzenia)" 
onClick="sAndRCount(this.form)">
<SPAN ID="counter">0</SPAN> fragmentw zostao zastpionych.</P>
<P><INPUT TYPE="button" VALUE="Odtwrz zmiany" onClick="undoReplace()"></P>
</FORM>

<DIV ID="rights">
<A NAME="poprawka1">
<H2>POPRAWKA I</H2>
</A>
<P>
Kongres nie moe stanowi ustaw wprowadzajcych religi albo zabraniajcych swobodnego 
wykonywania praktyk religijnych; ani ustaw ograniczajcych wolno sowa lub prasy, 
albo naruszajcych prawo do spokojnego odbywania zebra i wnoszenia do rzdu petycji 
o napraw krzywd.
</P>    

<H2>POPRAWKA II</H2>
<P>
Dobrze zorganizowana milicja jest niezbdna dla bezpieczestwa wolnego
pastwa; prawo ludzi do posiadania i noszenia broni nie moe by 
naruszone.</P>    

<H2>POPRAWKA III</H2>
<P>
W czasie pokoju wojsko nie bdzie kwaterowane w adnym domu bez zgody 
waciciela, a w czasie wojny te tylko w sposb prawem okrelony.
</P>    

<H2>POPRAWKA IV</H2>
<P>
Nie bdzie naruszane prawo ludzi do bezpieczestwa osobistego, 
nietykalnoci mieszkania, dokumentw i ruchomoci, oraz zapewniajce  
ochron przed nieuzasadnionymi rewizjami i sekwestrami. Nakaz rewizji lub 
aresztowania moe by wydany jedynie przez sd na podstawie 
uzasadnionego podejrzenia, popartego przysig lub owiadczeniem, przy 
czym dokadnie musi by wymienione miejsce rewizji oraz osoby i rzeczy, 
ktre maj by oboone aresztem.
</P>    

<H2>POPRAWKA V</H2>
<P>
Nikt nie bdzie pocigany do odpowiedzialnoci za zbrodni gwn lub 
inne habice przestpstwo bez zalecenia lub postawienia w stan 
oskarenia przez Wielk aw Przysigych; przepis ten nie dotyczy 
czonkw wojska, marynarki wojennej ani milicji, bdcej w subie 
czynnej podczas wojny lub zagroenia publicznego. Nie wolno te tej samej 
osoby sdzi ani naraa na kar mierci lub kar cielesn dwukrotnie za 
to samo przestpstwo; ani te nie wolno wymaga od oskaronego w sprawie 
karnej by wiadczy przeciwko sobie, ani pozbawia go ycia, wolnoci lub 
mienia inaczej ni w drodze czynicej zado istotnym wymaganiom sprawiedliwoci. Nie 
wolno te przej prywatnej wasnoci na uytek 
publiczny bez susznego odszkodowania. 
</P>    

<H2>POPRAWKA VI</H2>
<P>
We wszystkich sprawach karnych oskaronemu przysuguje prawo do szybkiej 
i jawnej rozprawy przed bezstronn aw przysigych w tym Stanie i 
okrgu, w ktrym przestpstwo zostao popenione, przy czym okrg ma by 
uprzednio prawnie ustalony. Oskaronego naley pouczy o charakterze i 
przyczynie oskarenia, postawi go wobec wiadkw oskarenia, w razie 
potrzeby pod przymusem sprowadzi wiadkw wiadczcych na jego korzy i 
zapewni mu obroc.
</P>    

<H2>POPRAWKA VII</H2>
<P>
W sprawach opartych na prawie zwyczajowym, gdy warto przedmiotu sporu 
przekracza 20 dolarw, prawo do rozprawy przed sdem przysigych bdzie 
zachowane, a adna sprawa osdzona przez przysigych nie moe by 
ponownie rozpatrywana przez jakikolwiek inny sd Stanw Zjednoczonych, 
jak tylko w zgodzie z postanowieniami prawa zwyczajowego.
</P>    

<H2>POPRAWKA VIII</H2>
<P>
Nie wolno da nadmiernych kaucji i wymierza nadmiernych grzywien ani 
te stosowa kar okrutnych lub wymylnych.
</P>    

<H2>POPRAWKA IX</H2>
<P>
Wymienienie w Konstytucji okrelonych praw nie oznacza zniesienia lub 
ograniczenia innych praw, przysugujcych ludowi.
</P>
  
<H2>POPRAWKA X</H2>
<P>
Uprawnienia, ktrych Konstytucja nie powierzya Stanom Zjednoczonym ani 
nie wyczya z waciwoci poszczeglnych Stanw, przysuguj nadal 
poszczeglnym Stanom bd ludowi.
</P>
</DIV>
</BODY>
</HTML>